package com.way.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;

// A layout designed to make the children same size as the first child.
public class StackLayout extends ViewGroup {
	private static final String TAG = "StackLayout";

	public StackLayout(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		final int count = getChildCount();

		// Measure only the first child.
		final View child = getChildAt(0);
		measureChild(child, widthMeasureSpec, heightMeasureSpec);

		// Ignore the paddings.
		int width = child.getMeasuredWidth();
		int height = child.getMeasuredHeight();

		setMeasuredDimension(resolveSize(width, widthMeasureSpec),
				resolveSize(height, heightMeasureSpec));
	}

	@Override
	protected void onLayout(boolean changed, int l, int t, int r, int b) {
		final int count = super.getChildCount();

		for (int i = 0; i < count; i++) {
			final View child = getChildAt(i);
			if (child.getVisibility() != View.GONE) {
				child.layout(0, 0, r - l, b - t);
			}
		}
	}
}
